using MediatR;
using TaskProject.ErrorCode;
using TaskProject.Extension.Plan;

namespace TaskProject.Application.Command.Plan
{
    /// <summary>
    /// 查询生产计划命令
    /// </summary>
    public class GetProductionPlanCommand : IRequest<APIResult<List<ProductionPlanDTO>>>
    {
        /// <summary>
        /// 计划主题（模糊查询）
        /// </summary>
        public string? PlanSubject { get; set; }

        /// <summary>
        /// 计划单号（模糊查询）
        /// </summary>
        public string? PlanOrderNumber { get; set; }

        /// <summary>
        /// 销售订单号（模糊查询）
        /// </summary>
        public string? SalesOrderNumber { get; set; }

        /// <summary>
        /// 计划状态
        /// </summary>
        public int? PlanStatus { get; set; }

        /// <summary>
        /// 优先级
        /// </summary>
        public int? Priority { get; set; }

        /// <summary>
        /// 开始日期
        /// </summary>
        public DateTime? StartDate { get; set; }

        /// <summary>
        /// 结束日期
        /// </summary>
        public DateTime? EndDate { get; set; }

        /// <summary>
        /// 页码
        /// </summary>
        public int PageIndex { get; set; } = 1;

        /// <summary>
        /// 页大小
        /// </summary>
        public int PageSize { get; set; } = 10;
    }
} 